1. Technical Field
The present invention relates in general to improved network error management and in particular to automated self-healing within a grid environment. Still more particularly, the present invention relates to managing network errors communicated in an XML message transaction using a troubleshooting agent.
2. Description of the Related Art
Ever since the first connection was made between two computer systems, new ways of transferring data, resources, and other information between two computer systems via a connection continue to develop. In typical network architectures, when two computer systems are exchanging data via a connection, one of the computer systems is considered a client sending requests and the other is considered a server processing the requests and returning results. In an effort to increase the speed at which requests are handled, server systems continue to expand in size and speed. Further, in an effort to handle peak periods when multiple requests are arriving every second, server systems are often joined together as a group and requests are distributed among the grouped servers. Multiple methods of grouping servers have developed such as clustering, multi-system shared data (sysplex) environments, and enterprise systems. With a cluster of servers, one server is typically designated to manage distribution of incoming requests and outgoing responses. The other servers typically operate in parallel to handle the distributed requests from clients. Thus, one of multiple servers in a cluster may service a client request without the client detecting that a cluster of servers is processing the request.
Typically, servers or groups of servers operate on a particular network platform, such as Unix or some variation of Unix, and provide a hosting environment for running applications. Each network platform may provide functions ranging from database integration, clustering services, and security to workload management and problem determination. Each network platform typically offers different implementations, semantic behaviors, and application programming interfaces (APIs).
Merely grouping servers together to expand processing power, however, is a limited method of improving efficiency of response times in a network. Thus, increasingly, within a company network, rather than just grouping servers, servers and groups of server systems are organized as distributed resources. There is an increased effort to collaborate, share data, share cycles, and improve other modes of interaction among servers within a company network and outside the company network. Further, there is an increased effort to outsource nonessential elements from one company network to that of a service provider network. Moreover, there is a movement to coordinate resource sharing between resources that are not subject to the same management system, but still address issues of security, policy, payment, and membership. For example, resources on an individual's desktop are not typically subject to the same management system as resources of a company server cluster. Even different administrative groups within a company network may implement distinct management systems.
The problems with decentralizing the resources available from servers and other computing systems operating on different network platforms, located in different regions, with different security protocols and each controlled by a different management system, has led to the development of Grid technologies using open standards for operating a grid environment. Grid environments support the sharing and coordinated use of diverse resources in dynamic, distributed, virtual organizations. A virtual organization is created within a grid environment when a selection of resources, from geographically distributed systems operated by different organizations with differing policies and management systems, is organized to handle a job request. A grid vendor may develop a grid environment to which a buyer may submit grid jobs, for example.
The open standards for Grid technologies describe a grid architecture. In the grid architecture, physical resources are managed by web services and open standards enable interfacing between web services and grid services. Grid applications interface with grid services.
Currently, many services provided through the Internet are already implemented through web services. The basis of web service communication is the Extensible Markup Language (XML). XML technology functions on the premise that data freely flows between two points, referred to as the requester and the responder.
A problem with XML based web services, however, is that when the requester's request is not delivered to the responder destination, the requester does not have an ability to manage communication errors. In particular, error determination in XML transactions, referred to as message transactions, is typically handled at the protocol level. Errors handled at the protocol level, however, are typically assigned a generic error code that does not provide the responder with sufficient information to then handle the error or imposes on the application developer the responsibility to write applications that will respond to protocol level errors. In particular, requiring the responder application to handle non-application specific errors, such as a generic protocol based error indicating a network problem, is not advantageous.
For a grid environment to efficiently provide services, it would be advantageous for grid resources and grid services to self-heal. Thus, as more grid services are created that interface with web services, it would be advantageous for error handling of network errors and other non-application specific errors to occur at the web services level by an agent, rather than relying on the requester or responder applications to understand generic errors and it would be advantageous for the error handling to provide information and responses that are more detailed and facilitate network self-healing.